-- @Author: 作者QQ2308873645
-- @Date:   2021-11-27 13:12:31
-- @Last Modified by:   作者QQ2308873645
-- @Last Modified time: 2022-06-08 19:06:02
function 任务控制类:刷出帮战怪物()---------------------
  local 刷出地图={11351,11352,11353,11354,11355}
  local 临时怪物 ={"噬天虎"}
  local 临时名称 ={"拦路虎"}
  local 刷出数量 = 50
    for n=1,#帮派竞赛.帮战列表 do
        for i=1, 刷出数量 do
        local 临时数值=math.random(1,#临时怪物)
        local 天关id=self:生成任务id()
        任务数据[天关id]={
        类型="帮战怪物"
        ,id=天关id
        ,起始=os.time()
        ,结束=3600
        ,任务id=天关id
        ,地图编号=刷出地图[n]
        ,地图名称=MapData[刷出地图[n]].名称
        ,名称=临时名称[临时数值]
        ,造型=临时怪物[临时数值]
        ,方向=math.random(4)-1
        ,坐标=地图处理类:Randomloadtion(刷出地图[n])
        ,数字id=0
        ,战斗=false
        }
        地图处理类:添加单位(任务数据[天关id])
        end
   end

 end


function 任务控制类:触发宝箱(id,标识)---------------
 local 临时任务id=地图处理类.MapData[玩家数据[id].地图].单位组[标识].id
 local 类型 =任务数据[临时任务id].类型
  if 地图处理类.MapData[玩家数据[id].地图].单位组[标识]==nil then
   发送数据(玩家数据[id].连接id,7,"#Y/任务数据异常，代号9002")
   return 0
  elseif 任务数据[临时任务id]==nil then
   发送数据(玩家数据[id].连接id,7,"#Y/任务数据异常，代号9001")
   return 0
  else
     地图处理类:移除单位(玩家数据[id].地图,临时任务id)
     任务数据[临时任务id]=nil
                   local 奖励物品 = {}
                   local 奖励概率 = {}
                   local 奖励数量 = {}
                   local 奖励总概率 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\帮战箱子.txt]], "帮战箱子", "奖励总概率")+0
                   for i=1,10 do
                       奖励物品[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\帮战箱子.txt]], "帮战箱子", "物品["..tostring(i).."]")
                       奖励概率[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\帮战箱子.txt]], "帮战箱子", "概率["..tostring(i).."]")+0
                       奖励数量[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\帮战箱子.txt]], "帮战箱子", "数量["..tostring(i).."]")+0
                   end
                   local 物品名称 = ""
                   local 随机奖励 = math.random(奖励总概率)
                   local 数量 = 0
                   if 随机奖励<=奖励概率[1] then
                      物品名称 = 奖励物品[1]
                      数量 = math.random(1,奖励数量[1])
                   elseif 随机奖励<=奖励概率[2] then
                      物品名称 = 奖励物品[2]
                      数量 = math.random(1,奖励数量[2])
                   elseif 随机奖励<=奖励概率[3] then
                      物品名称 = 奖励物品[3]
                      数量 = math.random(1,奖励数量[3])
                   elseif 随机奖励<=奖励概率[4] then
                      物品名称 = 奖励物品[4]
                      数量 = math.random(1,奖励数量[4])
                   elseif 随机奖励<=奖励概率[5] then
                      物品名称 = 奖励物品[5]
                      数量 = math.random(1,奖励数量[5])
                   elseif 随机奖励<=奖励概率[6] then
                      物品名称 = 奖励物品[6]
                      数量 = math.random(1,奖励数量[6])
                   elseif 随机奖励<=奖励概率[7] then
                      物品名称 = 奖励物品[7]
                      数量 = math.random(1,奖励数量[7])
                   elseif 随机奖励<=奖励概率[8] then
                      物品名称 = 奖励物品[8]
                      数量 = math.random(1,奖励数量[8])
                   elseif 随机奖励<=奖励概率[9] then
                      物品名称 = 奖励物品[9]
                      数量 = math.random(1,奖励数量[9])
                   elseif 随机奖励<=奖励概率[10] then
                      物品名称 = 奖励物品[10]
                      数量 = math.random(1,奖励数量[10])
                   end
                   if 物品名称 ~= "" and 物品名称 == "高级魔兽要诀" then
                      local 技能=取高级兽诀名称()
                      道具处理类:给予道具(id,物品名称,nil,技能)
                   elseif 物品名称 ~= "" and 物品名称 == "特殊魔兽要诀" then
                      local 技能=取特殊兽诀名称()
                      道具处理类:给予道具(id,物品名称,nil,技能)
                   else
                       道具处理类:给予道具(id,物品名称,nil,nil,数量)
                   end
                   道具处理类:系统兽决存仓(id)
                   道具处理类:系统仓库处理(id)
                   广播消息("#hd/".."#S/(帮战奖励)".."#R/ "..玩家数据[id].角色.名称.."#Y/在帮战竞赛中所向披靡GM奖励#g/"..物品名称.."#"..math.random(110))
  end
end
function 任务控制类:刷出帮战宝箱()---------------------
  local 刷出数量 = 50

    for i=1, 刷出数量 do
        local 天关id=self:生成任务id()
        local 临时坐标=地图处理类:Randomloadtion(1380)
        任务数据[天关id]={
        类型="帮战宝箱"
        ,id=天关id
        ,起始=os.time()
        ,结束=600
        ,任务id=天关id
        ,地图编号=1380
        ,地图名称=MapData[1380].名称
        ,名称="宝箱"
        ,造型="宝箱"
        ,方向=math.random(4)-1
        ,坐标=临时坐标
        ,数字id=0
        ,战斗=false
        }
        地图处理类:添加单位(任务数据[天关id])
    end
 end
function 任务控制类:完成帮战怪物任务(id,任务id)-------------
 local 帮派积分 = 5
     local 胜利列表 = 帮派竞赛:取帮战列表编号(玩家数据[id].角色.帮派)
     帮派竞赛.帮战列表[胜利列表.组号][胜利列表.分类].积分 = 帮派竞赛.帮战列表[胜利列表.组号][胜利列表.分类].积分+ 帮派积分
    if 玩家数据[id].队伍 == 0 then
        帮派数据[玩家数据[id].角色.帮派].成员名单[id].帮贡.获得=帮派数据[玩家数据[id].角色.帮派].成员名单[id].帮贡.获得+10
        帮派数据[玩家数据[id].角色.帮派].成员名单[id].帮贡.当前=帮派数据[玩家数据[id].角色.帮派].成员名单[id].帮贡.当前+10
        发送数据(玩家数据[id].连接id,7,"#Y/你获得了10点帮贡")
        角色处理类:添加活跃度(玩家数据[id],1)
        玩家数据[id].角色.比武积分=玩家数据[id].角色.比武积分+1
        发送数据(玩家数据[id].连接id, 7, "#y/你获得了" .. 帮派积分 .. "点帮派积分，当前总积分" .. 帮派竞赛.帮战列表[胜利列表.组号][胜利列表.分类].积分 .. "点")
    else
        for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
                帮派数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.帮派].成员名单[队伍数据[玩家数据[id].队伍].队员数据[n]].帮贡.获得=帮派数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.帮派].成员名单[队伍数据[玩家数据[id].队伍].队员数据[n]].帮贡.获得+10
                帮派数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.帮派].成员名单[队伍数据[玩家数据[id].队伍].队员数据[n]].帮贡.当前=帮派数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.帮派].成员名单[队伍数据[玩家数据[id].队伍].队员数据[n]].帮贡.当前+10
                发送数据(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].连接id,7,"#Y/你获得了10点帮贡")
                角色处理类:添加活跃度(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]],1)
                玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.比武积分=玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.比武积分+1
                发送数据(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].连接id, 7, "#y/你获得了" .. 帮派积分 .. "点帮派积分，当前总积分" .. 帮派竞赛.帮战列表[胜利列表.组号][胜利列表.分类].积分 .. "点")
        end
  end

 地图处理类:移除单位(玩家数据[id].地图,任务id)
 任务数据[任务id]=nil
 end
